#include "BatteryItem.h"
#include "oled.h"
#include <string.h>
#include <stdio.h>

namespace MircoUi {
    
    // 绘制电池项
    sVec2 BatteryItem::draw(sVec2 ap) {
        // 绘制电池外框
        OLED_DrawRectangle(ap.x, ap.y, ap.x + 15, ap.y + 10, 0, mode);
        OLED_DrawLine(ap.x + 16, ap.y + 3, ap.x + 16, ap.y + 7, 1); // 电池头部
        OLED_DrawLine(ap.x + 17, ap.y + 3, ap.x + 17, ap.y + 7, 1); // 电池头部
        // 计算电池电量填充
        if(charging) {
            OLED_DrawRectangle(ap.x + 2, ap.y + 2, ap.x + 13, ap.y + 8, 1,mode); // 充电状态下填充
        } else {
            if(level>30){                
                OLED_DrawRectangle(ap.x + 2, ap.y + 2, ap.x + 4, ap.y + 8, 1,mode); // 充电状态下填充
            }
            if(level>60){
                OLED_DrawRectangle(ap.x + 6, ap.y + 2, ap.x + 8, ap.y + 8, 1,mode); // 充电状态下填充
            }
            if(level>90){
                OLED_DrawRectangle(ap.x + 10, ap.y + 2, ap.x + 12, ap.y + 8, 1,mode); // 充电状态下填充
            }
        }
        // 绘制电池电量百分比
        char str[8];
        uint8 len = sprintf(str, "%-3d", level);
        OLED_ShowString(ap.x + 18, ap.y + 1, str, 8, mode); // 显示电量百分比，字体大小12
        


        return sVec2(16 + 6*len , 10); // 返回绘制后的尺寸   
    }
}
